import { z } from 'zod'

import { baseManyObjectsScheme, baseSchemeWithNote } from '@/types/base.types'

import { dayjsStrValidator } from '@/utils/customValidators'

export const orderStatuses: { [index: number]: string } = {
	0: 'Создан',
	1: 'Отправлен на производство',
	2: 'Производится',
	3: 'Передан на доставку',
	4: 'Доставлен',
	5: 'Сборка',
	9: 'Завершен'
}

export const orderScheme = baseSchemeWithNote.extend({
	number_in_program: z.string(),
	send_on_fabric_date: dayjsStrValidator,
	manufacturing_date: dayjsStrValidator,
	delivery_date: dayjsStrValidator,
	status: z.number().min(0).max(9),
	client: z.number()
})

export type IOrder = z.infer<typeof orderScheme>

export const ordersScheme = baseManyObjectsScheme.extend({
	results: z.array(orderScheme)
})

export type IOrders = z.infer<typeof ordersScheme>
